package com.example.sid.ui.fragments.elk

import android.util.Log
import android.widget.Button
import androidx.fragment.app.Fragment
import com.example.sid.R
import com.example.sid.how_to_use.SIDFacade
import sberid.sdk.init.SID
import sberid.sdk.ui.models.root.UIColorMode

/**
 * Фрагмент наглядно показвающий как использовать ELK в фрагменте.
 * Для обычных фрагментов способ подстановки находится внутри [R.layout.fragment_base_ui_and_mode] под id [R.id.elk_ui]
 * Для Compose экранов откроем доступ к функциям по запросу.
 *
 * [SID.ELK.subscribeToAnalytic] используется для подписки на события внутри ELK, для подключения к своей аналитике.
 * [SID.ELK.setUIMode] нужен для смены режима цветового отображения Автоматически/Темный/Светлый.
 */
class BaseUIAndModeFragment : Fragment(R.layout.fragment_base_ui_and_mode) {

	private val toTryButton: Button get() = requireView().findViewById(R.id.change_color_mode)
	private var count = 0

	override fun onStart() {
		super.onStart()

		SIDFacade.subscribeToAnalytic(this){ event ->
			Log.i("ELK Events", event)
		}

		toTryButton.setOnClickListener {
			when (count) {
				0 -> {
					SIDFacade.setUIMode(UIColorMode.AUTO)
					toTryButton.text = UIColorMode.AUTO.name
					count = 1
				}

				1 -> {
					SIDFacade.setUIMode(UIColorMode.DARK)
					toTryButton.text = UIColorMode.DARK.name
					count = 2
				}

				2 -> {
					SIDFacade.setUIMode(UIColorMode.LIGHT)
					toTryButton.text = UIColorMode.LIGHT.name
					count = 0
				}
			}

		}
	}
}